// Copyright Druid Mechanics


#include "AbilitySystem/Data/LevelUpInfo.h"

int32 ULevelUpInfo::FindLevelForXP(int32 XP) const
{
	int32 Level = 1;
	bool bSearching = true;
	while (bSearching)
	{
		/**
		 * 这里避免未来的我看不懂，说明一下。
		 * 一级对应一个等级信息，也就是LevelUpInformation。
		 */
		/**
		 * LevelUpInformation[1] = Level 1 Information
		 * LevelUpInformation[2] = Level 2 Information
		 * LevelUpInformation[0]是占位符。
		 */
		if (LevelUpInformation.Num() - 1 <= Level)
		{
			return Level;
		}
		/**
		 * 这里之所以是这么判断，是因为LevelUpRequirement是总的经验值，XP也是角色的总的经验值
		 */
		if (XP >= LevelUpInformation[Level].LevelUpRequirement)
		{
			++Level;
		}
		else
		{
			bSearching = false;
		}
	}
	return Level;
}
